###########################################
#
#  Octo-ber
#
#  Greeting program for the Octo-ber 2014
#  Chip8 Game Jam
#
###########################################

:alias x      v9
:alias y      va
:alias stride vb
:alias bat-x  vc
:alias bat-y  vd
:alias bat-t  ve

: main
	# draw title
	stride := 8
	i := title
	loop
		sprite x y 8
		i += stride
		x += 8
		if x == 64 then y += 8
		if x == 64 then x := 0
		if y != 32 then
	again

	# falling leaves and spooky bats
	bat-x := random 0xFF
	bat-y := 0
	bat-t := 0
	i := bat-0
	sprite bat-x bat-y 8

	loop
		# initialize leaf
		x := random 0xFF
		y := 0
		i := leaf-0
		sprite x y 7
		loop
			# move leaf
			i := leaf-1
			sprite x y 8
			y += 1

			# move bat
			move-bat
			sprite bat-x bat-y 8

			# delay loop
			vf := 10
			delay := vf
			loop
				vf := delay
				if vf != 0 then
			again

			if y != 25 then
		again

		vf := 6
		if vf -key then jump no-lantern
			i := lantern
			v0 := 3
			v1 := 7
			sprite v0 v1 0
		: no-lantern
	again

: move-bat
	if bat-t == 1 then jump move-bat-1
	i := bat-1
	bat-t := 1
;

: move-bat-1
	i := bat-2
	bat-x += -1
	bat-t := 0
;

: title # (256 bytes)
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x01 0x03 0x03 0x07 0x07 0x07
	0x7E 0xFF 0xFF 0xE7 0xC3 0x83 0x03 0x07
	0x00 0x00 0x80 0x80 0x80 0x80 0x80 0x80
	0x00 0x00 0x00 0x00 0x00 0x00 0x60 0x60
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0xE0 0x70 0x70 0x60 0xE0 0xC0
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x07 0x07 0x07 0x03 0x01 0x00 0x20 0x30
	0x07 0x0F 0x9F 0xFE 0xFC 0xF8 0x00 0x00
	0x3D 0x7D 0x60 0x60 0x79 0x39 0x00 0x00
	0xF7 0xF7 0xCC 0xCC 0xCF 0x87 0x00 0x60
	0x80 0xC1 0xDD 0xC1 0xC3 0x83 0x00 0x00
	0xF1 0xFB 0x9B 0x9B 0xFB 0xF1 0x00 0x00
	0xE2 0xB3 0xF7 0x07 0xE6 0xEE 0x00 0x00
	0xC0 0xE0 0x20 0x00 0x00 0x00 0x20 0x30
	0x2C 0x23 0xA0 0x68 0x14 0x4B 0x20 0x10
	0x22 0x54 0xA4 0xA5 0x26 0x65 0xC8 0x00
	0x00 0x41 0xA2 0x32 0xAE 0x51 0x89 0x84
	0xC0 0x40 0x41 0x46 0x49 0xEA 0x1A 0x89
	0x00 0x01 0xC0 0x40 0x47 0x2A 0x12 0x09
	0x78 0x96 0x49 0x24 0x24 0x22 0x22 0x44
	0x00 0x07 0xB8 0x40 0x43 0x24 0x28 0x19
	0x50 0x94 0x16 0xA5 0x4F 0xF2 0x95 0x24

: leaf-0  0x01 0x03 0x05 0x09 0x32 0xC6 0x38 0x00
: leaf-1  0x01 0x02 0x06 0x0C 0x3B 0xF4 0xFE 0x38

: bat-0   0x00 0x00 0x00 0x36 0x7F 0x6B 0x55 0x00
: bat-1   0x00 0x28 0xEE 0xD8 0x03 0x7B 0x7D 0x00
: bat-2   0x00 0x14 0x77 0x41 0x41 0x63 0x41 0x00

: lantern
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	0x08 0xC0 0x0F 0xE0 0x01 0xE0 0x17 0x98
	0x1D 0xD0 0x08 0xC0 0x18 0xE0 0x08 0xC0
	0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00